/*
 * Sesame Inc.
 * Copyright (c) 2009 All Rights Reserved.
 */
package com.sesame.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.sesame.domain.Friend;
import com.sesame.domain.Guestbook;
import com.sesame.domain.User;

/**
 * @author voidman
 * 
 */
@Transactional
public interface ContactService {
    @Transactional(readOnly = true)
    public List<User> listAllUser();

    @Transactional(readOnly = true)
    public List<Friend> listAllFriend(Integer user1Id);

    public void makeFriend(Integer user1Id, Integer user2Id, String headPic);

    @Transactional(readOnly = true)
    public boolean isFriend(Integer user1Id, Integer user2Id);

    public void deleteFriend(Integer user1Id, Integer user2Id);

    @Transactional(readOnly = true)
    public List<Guestbook> listAllGuestbook(Integer id);

    public void newGuestbook(Integer userId, Integer hostUserId,
            String content, String nickName, String headPic);

    public void deleteGuestbook(Integer id);

    public void reply(String reply, Integer guestbookId);

    @Transactional(readOnly = true)
    public List<Friend> listTopFriend(Integer user1Id);

    @Transactional(readOnly = true)
    public List<Guestbook> listTopGuestbook(Integer id);

}